1. Field of the Invention
The present invention relates to virtualization and more particularly to VM relocation.
2. Description of the Related Art
Until recently, a host computing environment included a hardware infrastructure of processor core, input/output, memory and fixed storage, the combination of which supported an operating system, which in turn supported the execution of a single application at a time. Gradually, as processor power increased, advanced forms of the operating system enabled both simulated and actual multi-tasking such that multiple applications could execute within the same host computing environment.
Initially, applications were self contained bundles of logic relying on little other than core object files and related resource files. As computing become integral to modern industry, however, applications became co-dependent on the presence of other applications such that the requisite environment for an application included not only the underlying operating system and supporting hardware platform, but also other key applications including application servers, database management servers, collaboration servers and communicative logic commonly referred to as middleware. Given the complexity of application and platform interoperability, however, different combinations of applications executing in a single hardware platform can demonstrate differing degrees of performance and stability.
Virtualization, and specifically virtualized (host) machines, as a technology aims to interject a layer between the hardware platform and operating system and executing applications. From the perspective of business continuity and disaster recovery, virtualization provides a portable computing environment. Specifically, moving an entire environment configured with multiple different applications is a matter of moving a virtual machine (VM) from one supporting host server computer to another. Further, more powerful host server computers can support the coexistence of multiple different VMs therein, all the while maintaining a virtual separation between the VMs. Consequently, a failure condition in one VM cannot jeopardize the integrity of other co-executing VM in the same host server computer.
In a data center environment, multiple VMs are deployed in multiple host server computers to satisfy computing demand present in the data center. As such, load balancing is of paramount importance in the data center with respect to the placement of VMs in specific host server computers. For instance, when entire system utilization is low, relocating individual VMs to a reduced number of host server computers and powering off remaining host server computers can reduce data center energy consumption. Yet, due to insufficient network bandwidth required to relocate VMs from host server computer to host server computer, VM relocation as a strategy may not be possible.
Notably, to relocate a VM to a target host server computer, two cost factors are to be considered: (1) VM running cost and (2) VM mobility cost (i.e. relocation cost). VM running cost is the cost of executing the VM in the target host server computer including CPU utilization, memory utilization, and other resource utilization. VM mobility cost is the cost to move the VM to the target host server computer. The VM mobility cost is generally influenced both by available network bandwidth and the workload writes to the VM memory which must be transferred across the network to the target host server computer during VM relocation. The rate of writes to the memory is referred to as the “memory dirtying rate”. Dirty pages must be transferred from source server to the target server during VM relocation. A VM with higher dirtying rate implies higher network traffic hence higher VM mobility cost for that particular VM. However, at present, VM relocation tools do not consider the VM mobility cost during VM relocation. Rather, contemporary VM relocation tools only relocate VMs based on VM running cost and system status including memory capacity, CPU utilization, energy consumption, and given policy.